<?php

use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\Config\Loader\LoaderInterface;

class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
            new Symfony\Bundle\SecurityBundle\SecurityBundle(),
            new Symfony\Bundle\TwigBundle\TwigBundle(),
            new Symfony\Bundle\MonologBundle\MonologBundle(),
            new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
            new Symfony\Bundle\AsseticBundle\AsseticBundle(),
            new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
            new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
            new JMS\AopBundle\JMSAopBundle(),
            new JMS\DiExtraBundle\JMSDiExtraBundle($this),
            new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(),
            
            // ADMIN PANEL
            new AdminPanel\DashboardBundle\AdminPanelDashboardBundle(),
            new AdminPanel\NewsBundle\AdminPanelNewsBundle(),
            new AdminPanel\ContentBundle\AdminPanelContentBundle(),
            new AdminPanel\ContentConfigBundle\AdminPanelContentConfigBundle(),
            new AdminPanel\MenuBundle\AdminPanelMenuBundle(),
            new AdminPanel\ModulesBundle\AdminPanelModulesBundle(),
            
            // LOGIN
            new Portal\UserBundle\PortalUserBundle(),
            new Portal\TutorLoginBundle\TutorLoginBundle(),
            new FOS\UserBundle\FOSUserBundle(),
            
            // PORTAL
            new Portal\MessageBundle\PortalMessageBundle(),
            new Portal\MainBundle\PortalMainBundle(),
            new Portal\SearchBundle\PortalSearchBundle(),
            new Portal\TutorBundle\PortalTutorBundle(),
            new Portal\RequestTutorBundle\PortalRequestTutorBundle(),
            
            
            //new Knp\Bundle\SnappyBundle\KnpSnappyBundle(),
            new Portal\LessonBundle\PortalLessonBundle(),
            new Portal\NotificationBundle\PortalNotificationBundle(),
            new Portal\ContractBundle\PortalContractBundle(),
            new Portal\ProfileBundle\PortalProfileBundle(),
            new Portal\InvoiceBundle\PortalInvoiceBundle(),
            new Portal\ContentBundle\PortalContentBundle(),
            new Portal\CommentBundle\PortalCommentBundle(),

            new AdminPanel\ContractBundle\AdminPanelContractBundle(),
            new AdminPanel\LessonBundle\AdminPanelLessonBundle(),
            new AdminPanel\QuestionBundle\AdminPanelQuestionBundle(),
            new Portal\NewsBundle\PortalNewsBundle(),
            new Portal\RateBundle\PortalRateBundle(),
        );

        if (in_array($this->getEnvironment(), array('dev', 'test'))) {
            //$bundles[] = new Acme\DemoBundle\AcmeDemoBundle();
            $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
            $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
            $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
        }

        return $bundles;
    }

    public function registerContainerConfiguration(LoaderInterface $loader)
    {
        $loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
       
    }
}
